package com.flyco.modules.oms.entity;

import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.flyco.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import com.flyco.poi.excel.annotation.Excel;
import java.util.Date;

/**
 * @Description: 订单发票
 * @Author: flyco
 * @Date:   2019-12-10
 * @Version: V1.0
 */
@Data
@TableName("oms_order_invoice")
public class OmsOrderInvoice implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键ID*/
	@TableId(type = IdType.ASSIGN_ID)
	@JsonSerialize(using= ToStringSerializer.class)
	private Long id;
	/**订单id*/
	private String orderId;
	/**发票类型：0：个人普票，1：企业普票，2：企业专票*/
    @Excel(name = "发票类型", width = 15, dicCode = "invoice_type")
	private String invoiceType;
	/**发票抬头*/
    @Excel(name = "发票抬头", width = 15)
	private String invoiceTitle;
	/**发票内容*/
	private String invoiceContent;
	/**发票金额*/
    @Excel(name = "发票金额", width = 15)
	private java.math.BigDecimal invoiceAmount;
	/**开票税金*/
	private java.math.BigDecimal invoiceTax;
	/**发票税号(纳税人识别号)*/
    @Excel(name = "纳税人识别号", width = 15)
	private String invoiceTaxNo;
	/**公司名称[增值税]*/
    @Excel(name = "公司名称", width = 15)
	private String vatCompanyName;
	/**公司地址[增值税]*/
    @Excel(name = "公司地址", width = 15)
	private String vatAddress;
	/**公司电话[增值税]*/
    @Excel(name = "公司电话", width = 15)
	private String vatPhone;
	/**开户银行[增值税]*/
    @Excel(name = "开户银行", width = 15)
	private String vatBankName;
	/**银行帐号[增值税]*/
    @Excel(name = "银行帐号", width = 15)
	private String vatBankAccount;
	/**开票时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**发票状态：0->未开票，1->已开票*/
	private Integer invoiceStatus;
	/**注销状态：0->未注销；1->已注销*/
	private Integer deleteStatus;
	/**收票人姓名*/
    //@Excel(name = "收票人", width = 15)
	private String receiverName;
	/**收票人手机*/
    //@Excel(name = "收票人号码", width = 15)
	private String receiverPhone;
	/**收票人区域*/
	private String receiverArea;
	/**收票人详细地址*/
	private String receiverAddress;
	/**收票人邮箱*/
	private String receiverEmail;
	/**快递公司ID*/
	private String expressId;
	/**快递单号*/
	private String expressNo;
	/**下载地址*/
	private String invoiceUrl;
	/**发票号码*/
	private String invoiceNo;
	/**发票代码*/
	private String invoiceDm;
	/**红冲发票地址*/
	private String redInvoiceUrl;
	/**红冲发票号码*/
	private String redInvoiceNo;
	/**红冲发票代码*/
	private String redInvoiceDm;
	/**红冲时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date redInvoiceTime;
	/**红冲发票金额*/
	private java.math.BigDecimal redInvoiceAmount;
	/**红冲发票税额*/
	private java.math.BigDecimal redInvoiceTax;

	@TableField(exist = false)
	private String invoiceType_dictText;
	@TableField(exist = false)
	private String invoiceStatus_dictText;
	@TableField(exist = false)
	private String deleteStatus_dictText;
}
